Relational Database Management Systems (RDBMS's) face the challenge of handling both transactional (On Line Transaction Processing—OLTP) and analytical (On Line Analytical Processing—OLAP) workloads. Classic RDBMS do this with specialized hardware that does not scale well or affordably as data volumes grow.
A different paradigm exists, the “shared-nothing” architecture, which typically networks commodity hardware together to allow for solving problems requiring large amounts of data in an affordable, scalable manner.
Existing shared-nothing database solutions typically specialize in OLAP-only or OLTP-only problems. This is due primarily to the fact that the two classes of problems require different approaches in order to succeed. OLTP workloads usually involve many fast “transactions”—either queries or updates that return or modify a very small number of rows. As the “transaction” word implies, these activities need to adhere to a transactional model under concurrency: consistent results, durably stored in case of hardware failure. OLAP workloads are typically not transactional at all but instead involve queries and joins for many (possibly) millions of rows of data or more. Here durability is less important than the speed of result generation—the faster the OLAP query runs, the better. However, a neither of these systems is able to handle both problems in a scale-out shared nothing architecture.